package com.dsx.test.properties;

import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

import java.util.ArrayList;
import java.util.List;

/**
 * @author : tianwenqing
 * @version : 1.0
 * @date : 2020-11-16 18:42
 * @description :
 **/
@ConfigurationProperties(prefix = "spring.shiro")
@Configuration
@Getter
@Setter
@Data
public class ShiroProperties {

    // 是否启用
    private Boolean enabled = true;
    // 权限是否启用
    private Boolean permEnabled = true;
    // 拦截路径
    private String pathPatterns = "/**";
    // 设置匿名访问URL
    private List<String> anonymous;
    // 权限排除
    private List<String> permAnonymous;
    // 认证默认排除路径
    private static List<String> authcExcludePathPatterns = new ArrayList<String>() {
        {
            add("/api/image/**");       // 图片下载
            add("/swagger*");           // 过滤在线文档API
            add("/static/**");          // 过滤页面资源路径
            add(".*/druid$");           // 过滤druid监测
            add("/track.jsp");          // 心跳检测(云纵CE默认)
//            add("/**/*.js");            // 静态资源js
//            add("/**/*.css");           // 静态资源css
//            add("/**/*.txt");           // 微信认证文件
        }
    };
    // 权限默认排除路径
    private static List<String> permExcludePathPatterns = new ArrayList<String>() {
        {
            add("/api/image/upload");       // 图片上传
            add("/api/image/**");          // 图片下载
            add("/track.jsp");              // 心跳检测(云纵CE默认)
        }
    };

    public static List<String> getAuthcExcludePathPatterns() {
        return authcExcludePathPatterns;
    }

    public static List<String> getPermExcludePathPatterns() {
        return permExcludePathPatterns;
    }
}
